The present invention relates generally to integrated circuit memory devices and, more particularly, to a random access memory system of destructive-read memory cached by destructive-read memory.
The evolution of sub-micron CMOS technology has resulted in significant improvement in microprocessor speeds. Quadrupling roughly every three years, microprocessor speeds have now exceeded 1 Ghz. Along with these advances in microprocessor technology have come more advanced software and multimedia applications, which in turn require larger memories for the application thereof.
Accordingly, there is an increasing demand for larger Dynamic Random Access Memories (DRAMs) with higher density and performance.
DRAM architectures have evolved over the years, being driven by system requirements that necessitate larger memory capacity. However, the speed of a DRAM, characterized by its random access time (tRAC) and its random access cycle time has not improved in a similar fashion. As a result, there is a widening speed gap between the DRAMs and the CPU, since the clock speed of the CPU steadily improves over time.
The random access cycle time (tRC) of a DRAM array is generally determined by the array time constant, which represents the amount of time to complete all of the random access operations. Such operations include wordline activation, signal development on the bitlines, bitline sensing, signal write back, wordline deactivation and bitline precharging. Because these operations are performed sequentially in a conventional DRAM architecture, increasing the transfer speed (or bandwidth) of the DRAM becomes problematic.
One way to improve the row access cycle time of a DRAM system for certain applications is to implement a destructive read of the data stored in the DRAM cells, and then temporarily store the destructively read data into a buffer cell connected to the sense amplifier of the same local memory array. (See, for example, U.S. Pat. Nos. 6,205,076 and 6,333,883 to Wakayama, et al.) In this approach, different wordlines in a local memory array connected to a common sense amplifier block can be destructively read sequentially for a number of times, which is set by one plus the number of the buffer cells per sense amplifier. However, the number of buffer cells that can be practically implemented in this approach is small, due to the large area required for both the buffer cells and associated control logic for each local DRAM array. Furthermore, so long as the number of buffer cells is less than the number of wordlines in the original cell arrays, this system only improves access cycle time for a limited number of data access cases, rather than the random access cycle time required in general applications.
A more practical way to improve the random access cycle time of a DRAM system is to implement a destructive read of the data stored in the DRAM cells, and then temporarily store the destructively read data into an SRAM based cache outside of the main memory array. The SRAM based cache has at least the same number of wordlines as one, single-bank DRAM array. (The term xe2x80x9cbankxe2x80x9d as described herein refers to an array of memory cells sharing the same sense amplifiers.) This technique is described in U.S. patent application Ser. No. 09/843,504, entitled xe2x80x9cA Destructive Read Architecture for Dynamic Random Access Memoriesxe2x80x9d, filed Apr. 26, 2001, and commonly assigned to the assignee of the present application. In this technique, a delayed write back operation is then scheduled for restoring the data to the appropriate DRAM memory location at a later time. The scheduling of the delayed write back operation depends upon the availability of space within the SRAM based cache. While such an approach is effective in reducing random access cycle time, the use of an SRAM based cache may occupy an undesired amount of chip real estate, as well as result in more complex interconnect wiring to transfer data between the DRAM and the cache. Where chip area is of particular concern, therefore, it becomes desirable to reduce random access cycle time without occupying a relatively large device area by using an SRAM based cache.
The above discussed and other drawbacks and deficiencies of the prior art are overcome or alleviated by a memory storage system. In an exemplary embodiment, the memory storage system includes a plurality of memory storage banks and a cache in communication therewith. Both the plurality of memory storage banks and the cache further include destructive read memory storage elements.
In a preferred embodiment, the destructive read memory storage elements are dynamic random access memory (DRAM) storage cells. In addition, the system further includes a line buffer structure in communication with the plurality of memory storage banks and the cache. A buffer tag is associated with the line buffer structure, and a cache tag is associated with the cache. The line buffer structure includes a pair of register arrays, each capable of storing a full page of wordline data, as in a DRAM array. In other words, the line buffer structure includes two registers per data I/O.
The plurality of memory storage banks further comprises a number, n, of DRAM storage banks each having a number, m, of wordlines associated therewith. The cache further includes a pair of DRAM cache banks, each having the same number, m, of wordlines associated therewith. Furthermore, each buffer is capable of storing a data page therein, the data page including data bits destructively read from a selected wordline of a selected DRAM storage bank, or a selected wordline of a selected DRAM cache bank. Data originally contained within one of the DRAM storage banks may be stored in one of the DRAM cache banks. Any data contained in the pair of DRAM cache banks that is originally associated with the DRAM storage banks is stored therein through a direct mapping scheme, wherein data associated with a given wordline address within one the DRAM storage banks is stored within that wordline address within one of the DRAM cache banks.
In another aspect, a method for controlling the movement of data within a dynamic random access memory (DRAM) system has a number, n, of DRAM storage banks, a line buffer structure and a cache. In an exemplary embodiment, the method includes defining a set of allowable states for valid data to exist within the storage banks, the buffer structure, and the cache. The DRAM system is initialized prior to a first random access request for data stored within the DRAM storage banks, wherein the initializing conforms to the defined set of allowable states. Following the first random access request for data, and following any subsequent random access request for data thereafter, the requested data is made available in the buffer structure, and the set of allowable states is upheld.